package com.aiwiown.face.domain.lite;

import com.aiwiown.face.ApiObject;
import com.aiwiown.face.domain.compare.IdExceptions;
import com.aiwiown.face.domain.compare.RiskAssessment;
import com.aiwiown.face.internal.mapping.ApiField;

/**
 * <pre>
 * 人脸比对结果；如果用户中途中断了活体流程，则此字段不返回。
 * </pre>
 * VerifyResult
 * Date: 2020/4/26 0026
 * Time: 16:37
 *
 * @author tang.xiaosheng@qq.com
 */
public class VerifyResult extends ApiObject {
    private static final long serialVersionUID = 3673924363039600324L;

    /**
     * 在做人脸比对的时候出现错误
     * <p>
     * NO_SUCH_ID_NUMBER：没有此身份证号码的记录。此错误会产生计费。
     * ID_NUMBER_NAME_NOT_MATCH：身份证号码与提供的姓名不匹配。此错误会产生计费。
     * IMAGE_ERROR_UNSUPPORTED_FORMAT: data_source：姓名和身份证号正确，但图片无法解析或者没有可比对图片。此错误会产生计费。
     * NO_FACE_FOUND:<param>：参数<param>对应的图像没有检测到人脸。此错误会产生计费。
     * DATA_SOURCE_ERROR：调用比对数据发生错误，一般来说是数据出错。出现此错误时建议停止业务，并立即联系FaceID客服或商务，待确认后再开启业务。
     * INTERNAL_ERROR：服务器内部错误，当此类错误发生时请再次请求，如果持续出现此类错误，请及时联系FaceID客服或商务。
     */
    @ApiField("error_message")
    private String errorMessage;

    /**
     * KYC验证的综合分数；
     */
    @ApiField("result_faceid")
    private RiskAssessment resultFaceid;

    /**
     * 活体采集人像与上传的image_ref[x]的比对结果
     */
    @ApiField("result_ref1")
    private RiskAssessment resultRef1;

    /**
     * 活体采集人像与上传的image_ref[x]的比对结果
     */
    @ApiField("result_ref2")
    private RiskAssessment resultRef2;

    /**
     * 活体采集人像与身份证照片上的人脸比对的结果；
     */
    @ApiField("result_idcard_photo")
    private RiskAssessment resultIdcardPhoto;

    /**
     * 身份证照片上的人脸和参考比对数据照片比对的结果
     */
    @ApiField("result_idcard_datasource")
    private RiskAssessment resultIdcardDatasource;

    /**
     * 本对象仅在KYC验证时（comparison_type == 1)返回
     * 返回KYC验证相关的异常情况，如证件号码是否曾被冒用来攻击FaceID活体检测等问题。调用者可通过此对象增进对比对结果的解读。
     */
    @ApiField("id_exceptions")
    private IdExceptions idExceptions;

    public String getErrorMessage() {
        return errorMessage;
    }

    public void setErrorMessage(String errorMessage) {
        this.errorMessage = errorMessage;
    }

    public RiskAssessment getResultFaceid() {
        return resultFaceid;
    }

    public void setResultFaceid(RiskAssessment resultFaceid) {
        this.resultFaceid = resultFaceid;
    }

    public RiskAssessment getResultRef1() {
        return resultRef1;
    }

    public void setResultRef1(RiskAssessment resultRef1) {
        this.resultRef1 = resultRef1;
    }

    public RiskAssessment getResultRef2() {
        return resultRef2;
    }

    public void setResultRef2(RiskAssessment resultRef2) {
        this.resultRef2 = resultRef2;
    }

    public RiskAssessment getResultIdcardPhoto() {
        return resultIdcardPhoto;
    }

    public void setResultIdcardPhoto(RiskAssessment resultIdcardPhoto) {
        this.resultIdcardPhoto = resultIdcardPhoto;
    }

    public RiskAssessment getResultIdcardDatasource() {
        return resultIdcardDatasource;
    }

    public void setResultIdcardDatasource(RiskAssessment resultIdcardDatasource) {
        this.resultIdcardDatasource = resultIdcardDatasource;
    }

    public IdExceptions getIdExceptions() {
        return idExceptions;
    }

    public void setIdExceptions(IdExceptions idExceptions) {
        this.idExceptions = idExceptions;
    }
}
